---
title: 'Not null'
---

# Not null

Sometimes you can be sure something's not null, but Kysely isn't able to infer
it. For example calling `where('last_name', 'is not', null)` doesn't make
`last_name` not null in the result type, but unless you have other where statements
you can be sure it's never null.

Kysely has a couple of helpers for dealing with these cases: `$notNull()` and `$narrowType`.
Both are used in the following example:

import { Playground } from '../../../src/components/Playground'

import {
  notNull
} from './0051-not-null'

<div style={{ marginBottom: '1em' }}>
  <Playground code={notNull} />
</div>

:::info[More examples]
The API documentation is packed with examples. The API docs are hosted [here](https://kysely-org.github.io/kysely-apidoc/),
but you can access the same documentation by hovering over functions/methods/classes in your IDE. The examples are always
just one hover away!

For example, check out these sections:
 - [select method](https://kysely-org.github.io/kysely-apidoc/interfaces/SelectQueryBuilder.html#select)
 - [selectAll method](https://kysely-org.github.io/kysely-apidoc/interfaces/SelectQueryBuilder.html#selectAll)
 - [selectFrom method](https://kysely-org.github.io/kysely-apidoc/classes/Kysely.html#selectFrom)
:::
